Agent hierarchy
You can create complex multi-layered orchestration topologies by specifying sub-agents for sub-agents.
For example, you can specify that main agent A has sub-agents B and C. And then, you can specify for agent C, that it has it’s own sub-agents D and E. When conversation with agent A starts, all above-mentioned sub-agents are initialized and are part of the conversation.
Agents are allowed to communicate (via pass_question or send_message tools) with:
- their parent - if such exists
- their siblings - i.e. sub-agents that share the same parent
- their sub-agents - i.e. any agent explicitly configured as sub-agent
In the above example:
- A may communicate with B and C
- B may communicate with A and C
- C may communicate with A, B, D and E
- D may communicate with C and E
- E may communicate with C and D
If, for example, you want to allow D communicate with B, you may add B as D’s sub-agent.
Configuration inheritance
Sub-agents inherit the advanced configuration parameters of the top-level agent that starts the conversation. A parameter specified on a sub-agent overrides the value inherited from the top-level agent.